נניח שיש לי מערכת עם כל מיני סוגים של פוסטים. עכשיו, אני מתכנן כמה Traits (או ככל הנראה Interfaces) שאחראים על כמה סטים של פונקציונליות שיכולה להיות משותפת גם לתגובות על הפוסטים, למשל. דוגמאות: Revision (בקרת גרסאות. מתודות כמו getAllRevisions().), סטטוס (Status - public, password protected...) - קצת פחות קשור לתגובות, אבל הבנתם את הרעיון.
הקטע הוא שלחלקם יכולה להיות פונקציונליות נוספת בהתאם לסטים אחרים שמשומשים. וואו, פתאום שכחתי דוגמאות. אבל זה אפשרי. ואני לא יכול לעשות משהו כמו Revision, Status, StatusAndRevision מהסיבה הברורה מאליה. חייב להיות איזשהו Design Pattern לזה, נכון? מישהו?

4 תשובות

avatar ענה iiddaannyy ב 09 למאי 2013 #

אני לא כל כך הבנתי על מה אתה מדבר, אבל אם בכל זאת כן הבנתי ואתה מדבר על מימוש של כמה ממשקים באותה המחלקה אז אין עם זה בעיה. תפריד את הממשקים שאתה מממש באמצעות פסיקים.

avatar ענה OrelBeY ב 09 למאי 2013 #

נניח שיש לי ממשקים A. B ו-C. כל אחד הוא שונה (כמובן), אבל יש ביניהם קשר, כך שאם כמה מהם ביחד - יש עוד פונקציונליות מיוחדת, כך שבסופו של יום יש:
A
B
C
AB
AC
BC
ABC
ואני לא רוצה שייווצר מצב שבו אני איאלץ לעשות... כמה? 7 ממשקים, עם הרבה שכפול קוד, וזה רק אם מדובר ב-3.
מניח שהבהרתי את עצמי עכשיו....

avatar ענה intval ב 09 למאי 2013 #

למה 7 ממשקים? 3 ממשקים והקלאסים שאתה רוצה יממשו את אותם ממשקים.
אם זה אקטואלי - שיממשו על ידי traits. למרות שאני בספק שזה אקטואלי.

avatar ענה OrelBeY ב 10 למאי 2013 #

מדובר על מקרה שבו אם A לבד - הוא A. אם A משומש יחד עם B - אז ל-A יהיה עוד כמה דברים. אבל יודעים מה? אני בכלל לא בטוח שאצטרך את זה, ככה שלבינתיים פשוט נשאיר את זה ככה... תודה. :-)